package com.iot.fire.domain;

import com.alibaba.fastjson2.annotation.JSONField;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import lombok.Data;

/**
 * 设备信息对象 t_device
 *
 * @author ruoyi
 * @date 2025-11-05
 */
@Data
public class TDevice {
    private static final long serialVersionUID = 1L;

    /**
     * 主键
     */
    @TableId(value = "id", type = IdType.ASSIGN_UUID)
    private String id;

    /**
     * 设备ID
     */
    @JSONField(name = "device_id")
    private String deviceId;

    /**
     * 所属联网单位
     */
    @JSONField(name = "unit_id")
    private String unitId;

    /**
     * 设施名称
     */
    @JSONField(name = "device_name")
    private String deviceName;

    /**
     * 设施类型，通过基础数据设备类型接口获取
     */
    @JSONField(name = "device_type_id")
    private Long deviceTypeId;

    /**
     * 生产公司
     */
    @JSONField(name = "produce_company")
    private String produceCompany;

    /**
     * 生产日期，格式：2017-01-01 00:00:00
     */
    @JSONField(name = "produce_date")
    private String produceDate;

    /**
     * 报废日期，格式：2017-01-01 00:00:00
     */
    @JSONField(name = "scrap_date")
    private String scrapDate;

    /**
     * 设备编号
     */
    @JSONField(name = "device_code")
    private String deviceCode;

    /**
     * 设备型号
     */
    @JSONField(name = "device_model")
    private String deviceModel;

    /**
     * 所属建筑物
     */
    @JSONField(name = "building_id")
    private Long buildingId;

    /**
     * 所属楼层
     */
    @JSONField(name = "floor_id")
    private Long floorId;

    /**
     * 设备位置
     */
    @JSONField(name = "device_address")
    private String deviceAddress;

    /**
     * 其他扩展信息，格式为json字符串
     */
    @JSONField(name = "extra_data")
    private String extraData;

    /**
     * 推送状态 0-未推送 1-推送失败 2-推送成功
     */
    private String pushStatus;

    /**
     * 创建用户ID
     */
    private Long createUserId;

    /**
     * 设备品类 1-网关协议 0-水协议
     */
    private String deviceCategory;

    /**
     * 阈值上限
     */
    private String deviceMax;

    /**
     * 阈值下限
     */
    private String deviceMin;

    /**
     * 设备状态 0-停用 1-启用
     */
    private String deviceStatus;

    /**
     * 在线状态 0-离线 1-在线
     */
    private String onlineStatus;

    /**
     * 删除标识
     */
    private String delFlag;
}
